home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / c / flash-0.4.3.lha / flash-0.4.3 / Lib / bitmap.h < prev    next >
C/C++ Source or Header  |  1999-02-21  |  2KB  |  83 lines

  1. /////////////////////////////////////////////////////////////
  2. // Flash Plugin and Player
  3. // Copyright (C) 1998 Olivier Debon
  4. // 
  5. // This program is free software; you can redistribute it and/or
  6. // modify it under the terms of the GNU General Public License
  7. // as published by the Free Software Foundation; either version 2
  8. // of the License, or (at your option) any later version.
  9. // 
  10. // This program is distributed in the hope that it will be useful,
  11. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. // GNU General Public License for more details.
  14. // 
  15. // You should have received a copy of the GNU General Public License
  16. // along with this program; if not, write to the Free Software
  17. // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18. // 
  19. ///////////////////////////////////////////////////////////////
  20. #ifndef _BITMAP_H_
  21. #define _BITMAP_H_
  22.  
  23. #include <stdio.h>
  24. #include <sys/types.h>
  25. #include <setjmp.h>
  26. extern "C" {
  27. #include "Jpeg/jpeglib.h"
  28. };
  29. extern "C" {
  30. #include "Zlib/zlib.h"
  31. };
  32. #include "swf.h"
  33. #include "character.h"
  34. #include "graphic.h"
  35.  
  36. struct MyErrorHandler {
  37.     struct jpeg_error_mgr pub;
  38.     jmp_buf setjmp_buffer;
  39. };
  40.  
  41. class Bitmap : public Character {
  42.     long         width;
  43.     long         height;
  44.     long         depth;
  45.  
  46.     unsigned char     *pixels;        // Array of Pixels
  47.     Color        *colormap;     // Array of color definitions
  48.     long         nbColors;
  49.  
  50.     int         defLevel;
  51.  
  52. // Class Variables
  53.  
  54.     static int haveTables;
  55.     static struct jpeg_decompress_struct jpegObject;
  56.     static struct jpeg_source_mgr jpegSourceManager;
  57.     static MyErrorHandler jpegErrorMgr;
  58.  
  59. public:
  60.     Bitmap(long id, int level = 1);
  61.     ~Bitmap();
  62.  
  63.     // JPEG handling methods
  64.     int     buildFromJpegInterchangeData(unsigned char *stream);    // Complete
  65.     int     buildFromJpegAbbreviatedData(unsigned char *stream);    // Abbreviated
  66.  
  67.         // Class Method
  68.     static int readJpegTables(unsigned char *stream);    // Tables Only
  69.  
  70.     // ZLIB handling methods
  71.     int     buildFromZlibData(unsigned char *buffer,
  72.                     int width, int height,
  73.                     int format, int tableSize);
  74.  
  75.     SwfPix        *getImage(GraphicDevice *, Matrix *, Cxform *);
  76.     long         getWidth();
  77.     long         getHeight();
  78.     Color       *getColormap(long *n);
  79.     unsigned char     *getPixels();
  80. };
  81.  
  82. #endif /* _BITMAP_H_ */
  83.